package neg;

import static org.junit.Assert.*;

import org.junit.Test;

public class NegocioTest {
	@Test
	public void prueba1() {
		Cliente Raul = new Cliente("Raul", new Ubicacion(3, 3));
		Cliente Roberto = new Cliente("Roberto", new Ubicacion(2, 1));

		Pedido pedidoRaul = new Pedido("12/12/12", Raul);
		Pedido pedidoRoberto = new Pedido("12/12/12", Roberto);

		Negocio neg = new Negocio(new Ubicacion(0, 1));

		neg.agregarPedidoPendiente(pedidoRaul);
		neg.agregarPedidoPendiente(pedidoRoberto);

		neg.agregarPedidoAProgramar(pedidoRoberto);
		assertTrue(neg.distanciaDelCaminoMinimo() == 2);

		neg.agregarPedidoAProgramar(pedidoRaul);
		assertTrue(neg.distanciaDelCaminoMinimo() >= 2);

		neg.eliminarPedidoAProgramar(pedidoRaul);
		assertTrue(neg.distanciaDelCaminoMinimo() == 2);

	}

	@Test
	public void prueba2() {
		Cliente pepe = new Cliente("Pepe", new Ubicacion(1, 1));
		Cliente Julian = new Cliente("Julian", new Ubicacion(2, 4));
		Cliente Raul = new Cliente("Raul", new Ubicacion(3, 3));
		Cliente Roberto = new Cliente("Roberto", new Ubicacion(2, 1));

		Pedido pedidoPepe = new Pedido("12/12/12", pepe);
		Pedido pedidoJulian = new Pedido("12/12/12", Julian);
		Pedido pedidoRaul = new Pedido("12/12/12", Raul);
		Pedido pedidoRoberto = new Pedido("12/12/12", Roberto);

		Negocio neg = new Negocio(new Ubicacion(0, 1));

		neg.agregarPedidoPendiente(pedidoRaul);
		neg.agregarPedidoPendiente(pedidoRoberto);
		neg.agregarPedidoPendiente(pedidoJulian);
		neg.agregarPedidoPendiente(pedidoPepe);

		neg.agregarPedidoAProgramar(pedidoRoberto);
		neg.agregarPedidoAProgramar(pedidoRaul);
		neg.agregarPedidoAProgramar(pedidoPepe);
		neg.agregarPedidoAProgramar(pedidoJulian);

		double distanciaEsperada = 9.255832815336873;
		double distanciaDelCaminoMinimo = neg.distanciaDelCaminoMinimo();

		assertTrue(distanciaDelCaminoMinimo == distanciaEsperada);

	}
}
